/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Model;

import DAO.DAOFuncionario;
import java.io.Serializable;

/**
 *
 * @author ebastos
 */
public class BeanFuncionario implements Serializable {
    private int MATRICULA;
    private String senha;
    private long CPF;
    private int tipo;
    private BeanPessoa pessoa;
    private EnumTipoFuncionario tipofuncionario;

    public BeanFuncionario() {
    }
    
    public BeanFuncionario(int matricula) {
        DAOFuncionario bancoFuncionario = new DAOFuncionario();
        BeanFuncionario funcionario = bancoFuncionario.RetornaFuncionario(matricula) ;
        if (funcionario == null)
            return;
        this.MATRICULA = matricula;
        this.senha = funcionario.getSenha();
        this.CPF = funcionario.getCPF();
        this.tipo = funcionario.getTipo();
        this.pessoa = funcionario.getPessoa();
    }
    
    public BeanFuncionario(int matricula, String senha) {
        DAOFuncionario bancoFuncionario = new DAOFuncionario();
        BeanFuncionario funcionario = bancoFuncionario.ValidaLogin(matricula, senha) ;
        if (funcionario == null)
            return;
        this.MATRICULA = matricula;
        this.senha = senha;
        this.CPF = funcionario.getCPF();
        this.tipo = funcionario.getTipo();
        this.pessoa = funcionario.getPessoa();
    }
    
    public void Salvar(BeanFuncionario funcionario) {
        DAOFuncionario bancoFuncionario = new DAOFuncionario();
        if (bancoFuncionario.RetornaFuncionario(funcionario.getMATRICULA()) == null)
            bancoFuncionario.Inserir(funcionario);
        else
            bancoFuncionario.Atualizar(funcionario);
    }
    
    public void Remover(BeanFuncionario funcionario) {
        DAOFuncionario bancoFuncionario = new DAOFuncionario();
        bancoFuncionario.Remover(funcionario);
    }

    public int getMATRICULA() {
        return MATRICULA;
    }

    public void setMATRICULA(int MATRICULA) {
        this.MATRICULA = MATRICULA;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public long getCPF() {
        return CPF;
    }

    public void setCPF(long CPF) {
        this.CPF = CPF;
    }

    public int getTipo() {
        return tipo;
    }

    public void setTipo(int tipo) {
        this.tipo = tipo;
    }
    
    public BeanPessoa getPessoa() {
        if (this.pessoa == null)
            this.pessoa = new BeanPessoa(this.CPF);
        return pessoa;
    }

    public void setPessoa(BeanPessoa pessoa) {
        this.pessoa = pessoa;
    }

    public EnumTipoFuncionario getTipofuncionario() {
        if (tipofuncionario == null)
            if (tipo == EnumTipoFuncionario.GERENTE.valorTipo)
                tipofuncionario = EnumTipoFuncionario.GERENTE;
            else
                tipofuncionario = EnumTipoFuncionario.FUNCIONARIO;
        return tipofuncionario;
    }

    public void setTipofuncionario(EnumTipoFuncionario tipofuncionario) {
        this.tipofuncionario = tipofuncionario;
    }
    
}
